package com.zwps.biz.dal.db.object;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zwps.biz.dal.constant.TableNameConstant;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@TableName(TableNameConstant.FILE_RECORD)
@Getter
@Setter
@NoArgsConstructor
public class FileRecordDO {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 上级文件id
     */
    private String parentId;
    
    /**
     * 附件名称
     */
    private String fileName;

    /**
     * 文件保存的路径
     */
    private String filePath;

    /**
     * 文件下载的地址
     */
    private String fileUrl;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 存储类型 @see com.yskj.biz.file.domain.enums.FileStoreTypeEnum
     */
    private Integer storeType;

    /**
     * 上传状态 @see com.yskj.biz.file.domain.enums.FileUploadStatusEnum
     */
    private Integer uploadStatus;

    /**
     * 上传失败原因
     */
    private String uploadFailReason;

    /**
     * 逻辑删除状态 @see com.yskj.biz.file.domain.enums.FileDeleteStatusEnum
     */
    private Integer deleteStatus;

    /**
     * 文件使用类型（1：原文件|2：压缩图片|3：压缩视频|4：视频封面）
     */
    private Integer useType;
    
    /**
     * 文件类（0：文件|1：图片|2：音频|3：视频|4：文档）
     */
    private Integer fileClass;

    /**
     * 外部文件，是否外部文件（0：不是|1：是）
     */
    private Integer externalFile;
    
    /**
     * 创建用户
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改用户
     */
    private String updateBy;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;
}